/*
 * Copyright (C) 2008-12  Bernhard Hobiger
 *
 * This file is part of HoDoKu.
 *
 * HoDoKu is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * HoDoKu is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with HoDoKu. If not, see <http://www.gnu.org/licenses/>.
 */

package sudoku;

/**
 *
 * @author  hobiwan
 */
public class ConfigStepPanel extends javax.swing.JPanel {
    private static String[] fishTypes = {"Basic", "Basic/Franken", "Basic/Franken/Mutant"};
    private static String[] finSizes = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
    private static String[] fishSizes = {"2", "3", "4", "5", "6", "7"};
    private static String[] chainSizes = {
        "0",  "1",  "2",  "3",  "4",  "5",  "6",  "7",  "8",  "9",
        "10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
        "20", "21", "22", "23", "24", "25", "26", "27", "28", "29",
        "30", "31", "32", "33", "34", "35", "36", "37", "38", "39"
    };
    private static String[] fishDisplayTypes = {
        java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.fishDisplayTypeLabel.text1"),
        java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.fishDisplayTypeLabel.text2"),
        java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.fishDisplayTypeLabel.text3")
    };
    private static final long serialVersionUID = 1L;
    
    /** Creates new form ConfigStepPanel */
    @SuppressWarnings("unchecked")
    public ConfigStepPanel() {
        initComponents();

        maxFinsComboBox.removeAllItems();
        maxEndoFinsComboBox.removeAllItems();
        krakenFishMaxFinsComboBox.removeAllItems();
        krakenFishMaxEndoFinsComboBox.removeAllItems();
        for (int i = 0; i < finSizes.length; i++) {
            maxFinsComboBox.addItem(finSizes[i]);
            maxEndoFinsComboBox.addItem(finSizes[i]);
            krakenFishMaxFinsComboBox.addItem(finSizes[i]);
            krakenFishMaxEndoFinsComboBox.addItem(finSizes[i]);
        }
        
        krakenFishTypeComboBox.removeAllItems();
        for (int i = 0; i < fishTypes.length; i++) {
            krakenFishTypeComboBox.addItem(fishTypes[i]);
        }

        krakenFishMaxSizeComboBox.removeAllItems();
        for (int i = 0; i < fishSizes.length; i++) {
            krakenFishMaxSizeComboBox.addItem(fishSizes[i]);
        }

        fishDisplayTypeComboBox.removeAllItems();
        for (int i = 0; i < fishDisplayTypes.length; i++) {
            fishDisplayTypeComboBox.addItem(fishDisplayTypes[i]);
        }

        for (int i = 0; i < chainSizes.length; i++) {
            restrictChainSizeComboBox.addItem(chainSizes[i]);
            //restrictNiceLoopSizeComboBox.addItem(chainSizes[i]);
        }
        
        NumbersOnlyDocument doc = new NumbersOnlyDocument();
        maxTableEntryLengthTextField.setDocument(doc);
        doc = new NumbersOnlyDocument();
        lookAheadTextField.setDocument(doc);

        // Alle Werte aus den Default-Optionen setzen
        initAll(false);
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel2 = new javax.swing.JPanel();
        resetButton = new javax.swing.JButton();
        tablingPanel = new javax.swing.JPanel();
        maxTableEntryLengthLabel = new javax.swing.JLabel();
        lookAheadLabel = new javax.swing.JLabel();
        maxTableEntryLengthTextField = new javax.swing.JTextField();
        lookAheadTextField = new javax.swing.JTextField();
        onlyOneChainCheckBox = new javax.swing.JCheckBox();
        allowAlsInTablingCheckBox = new javax.swing.JCheckBox();
        miscellaneousPanel = new javax.swing.JPanel();
        useZeroInsteadOfDotCheckBox = new javax.swing.JCheckBox();
        erWithTwoCandidatesCheckBox = new javax.swing.JCheckBox();
        allowDualsAndSiameseCheckBox = new javax.swing.JCheckBox();
        allowMissingCandidatesCheckBox = new javax.swing.JCheckBox();
        alsPanel = new javax.swing.JPanel();
        allowAlsOverlapCheckBox = new javax.swing.JCheckBox();
        onlyOneAlsStepCheckBox = new javax.swing.JCheckBox();
        jPanel1 = new javax.swing.JPanel();
        fishPanel = new javax.swing.JPanel();
        maxFinsLabel = new javax.swing.JLabel();
        maxEndoFinsLabel = new javax.swing.JLabel();
        fishDisplayTypeLabel = new javax.swing.JLabel();
        maxFinsComboBox = new javax.swing.JComboBox();
        maxEndoFinsComboBox = new javax.swing.JComboBox();
        checkTemplatesCheckBox = new javax.swing.JCheckBox();
        onlyOneFishCheckBox = new javax.swing.JCheckBox();
        fishDisplayTypeComboBox = new javax.swing.JComboBox();
        jPanel3 = new javax.swing.JPanel();
        restrictChainSizeLabel = new javax.swing.JLabel();
        restrictChainSizeComboBox = new javax.swing.JComboBox();
        restrictChainSizeCheckBox = new javax.swing.JCheckBox();
        krakenFishPanel = new javax.swing.JPanel();
        krakenFishMaxEndoFinsComboBox = new javax.swing.JComboBox();
        krakenFishMaxEndoFinsLabel = new javax.swing.JLabel();
        krakenFishMaxFinsLabel = new javax.swing.JLabel();
        krakenFishMaxFinsComboBox = new javax.swing.JComboBox();
        krakenFishTypeComboBox = new javax.swing.JComboBox();
        krakenFishTypeLabel = new javax.swing.JLabel();
        krakenFishMaxSizeLabel = new javax.swing.JLabel();
        krakenFishMaxSizeComboBox = new javax.swing.JComboBox();

        resetButton.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.resetButton.mnemonic").charAt(0));
        java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("intl/ConfigStepPanel"); // NOI18N
        resetButton.setText(bundle.getString("ConfigStepPanel.resetButton.text")); // NOI18N
        resetButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                resetButtonActionPerformed(evt);
            }
        });

        tablingPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ConfigStepPanel.tablingPanel.border.title"))); // NOI18N

        maxTableEntryLengthLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.maxTableEntryLengthLabel.mnemonic").charAt(0));
        maxTableEntryLengthLabel.setLabelFor(maxTableEntryLengthTextField);
        maxTableEntryLengthLabel.setText(bundle.getString("ConfigStepPanel.maxTableEntryLengthLabel.text")); // NOI18N

        lookAheadLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.lookAheadLabel.mnemonic").charAt(0));
        lookAheadLabel.setLabelFor(lookAheadTextField);
        lookAheadLabel.setText(bundle.getString("ConfigStepPanel.lookAheadLabel.text")); // NOI18N

        onlyOneChainCheckBox.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.onlyOneChainCheckBox.mnemonic").charAt(0));
        onlyOneChainCheckBox.setText(bundle.getString("ConfigStepPanel.onlyOneChainCheckBox.text")); // NOI18N
        onlyOneChainCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        onlyOneChainCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0));

        allowAlsInTablingCheckBox.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("allowAlsInTablingCheckBox.mnemonic").charAt(0));
        allowAlsInTablingCheckBox.setText(bundle.getString("ConfigStepPanel.allowAlsInTablingCheckBox.text")); // NOI18N

        javax.swing.GroupLayout tablingPanelLayout = new javax.swing.GroupLayout(tablingPanel);
        tablingPanel.setLayout(tablingPanelLayout);
        tablingPanelLayout.setHorizontalGroup(
            tablingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tablingPanelLayout.createSequentialGroup()
                .addGroup(tablingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(tablingPanelLayout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(tablingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(maxTableEntryLengthLabel)
                            .addComponent(lookAheadLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(tablingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(lookAheadTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 158, Short.MAX_VALUE)
                            .addComponent(maxTableEntryLengthTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 158, Short.MAX_VALUE)))
                    .addGroup(tablingPanelLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(onlyOneChainCheckBox))
                    .addGroup(tablingPanelLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(allowAlsInTablingCheckBox)))
                .addContainerGap())
        );
        tablingPanelLayout.setVerticalGroup(
            tablingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tablingPanelLayout.createSequentialGroup()
                .addGroup(tablingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(maxTableEntryLengthLabel)
                    .addComponent(maxTableEntryLengthTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(tablingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lookAheadLabel)
                    .addComponent(lookAheadTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(onlyOneChainCheckBox)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(allowAlsInTablingCheckBox))
        );

        miscellaneousPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ConfigStepPanel.miscellaneousPanel.border.title"))); // NOI18N

        useZeroInsteadOfDotCheckBox.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.useZeroInsteadOfDotCheckBox.mnemonic").charAt(0));
        useZeroInsteadOfDotCheckBox.setText(bundle.getString("ConfigStepPanel.useZeroInsteadOfDotCheckBox.text")); // NOI18N

        erWithTwoCandidatesCheckBox.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.erWithTwoCandidatesCheckBox.mnemonic").charAt(0));
        erWithTwoCandidatesCheckBox.setText(bundle.getString("ConfigStepPanel.erWithTwoCandidatesCheckBox.text")); // NOI18N

        allowDualsAndSiameseCheckBox.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.allowDualsAndSiameseCheckBoxMnemonic").charAt(0));
        allowDualsAndSiameseCheckBox.setText(bundle.getString("ConfigStepPanel.allowDualsAndSiameseCheckBox.text")); // NOI18N

        allowMissingCandidatesCheckBox.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.allowMissingCandidatesCheckBox.mnemonic").charAt(0));
        allowMissingCandidatesCheckBox.setText(bundle.getString("ConfigStepPanel.allowMissingCandidatesCheckBox.text")); // NOI18N

        javax.swing.GroupLayout miscellaneousPanelLayout = new javax.swing.GroupLayout(miscellaneousPanel);
        miscellaneousPanel.setLayout(miscellaneousPanelLayout);
        miscellaneousPanelLayout.setHorizontalGroup(
            miscellaneousPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(miscellaneousPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(miscellaneousPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(erWithTwoCandidatesCheckBox)
                    .addComponent(useZeroInsteadOfDotCheckBox)
                    .addComponent(allowDualsAndSiameseCheckBox)
                    .addComponent(allowMissingCandidatesCheckBox))
                .addContainerGap(53, Short.MAX_VALUE))
        );
        miscellaneousPanelLayout.setVerticalGroup(
            miscellaneousPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(miscellaneousPanelLayout.createSequentialGroup()
                .addComponent(erWithTwoCandidatesCheckBox)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(useZeroInsteadOfDotCheckBox)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(allowDualsAndSiameseCheckBox)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(allowMissingCandidatesCheckBox)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        alsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("alsPanel.border.Text"))); // NOI18N

        allowAlsOverlapCheckBox.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("allowAlsOverlapCheckBox.mnemonic").charAt(0));
        allowAlsOverlapCheckBox.setText(bundle.getString("ConfigStepPanel.allowAlsOverlapCheckBox.text")); // NOI18N

        onlyOneAlsStepCheckBox.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.onlyOneAlsStepCheckBox.mnemonic").charAt(0));
        onlyOneAlsStepCheckBox.setText(bundle.getString("ConfigStepPanel.onlyOneAlsStepCheckBox.text")); // NOI18N

        javax.swing.GroupLayout alsPanelLayout = new javax.swing.GroupLayout(alsPanel);
        alsPanel.setLayout(alsPanelLayout);
        alsPanelLayout.setHorizontalGroup(
            alsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(alsPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(alsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(allowAlsOverlapCheckBox)
                    .addComponent(onlyOneAlsStepCheckBox))
                .addContainerGap(63, Short.MAX_VALUE))
        );
        alsPanelLayout.setVerticalGroup(
            alsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(alsPanelLayout.createSequentialGroup()
                .addComponent(allowAlsOverlapCheckBox)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(onlyOneAlsStepCheckBox))
        );

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addContainerGap(133, Short.MAX_VALUE)
                        .addComponent(resetButton))
                    .addComponent(alsPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(miscellaneousPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(tablingPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addComponent(tablingPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(miscellaneousPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(alsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 80, Short.MAX_VALUE)
                .addComponent(resetButton)
                .addContainerGap())
        );

        fishPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ConfigStepPanel.fishPanel.border.title"))); // NOI18N

        maxFinsLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.maxFinsLabel.mnemonic").charAt(0));
        maxFinsLabel.setText(bundle.getString("ConfigStepPanel.maxFinsLabel.text")); // NOI18N

        maxEndoFinsLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.maxEndoFinsLabel.mnemonic").charAt(0));
        maxEndoFinsLabel.setText(bundle.getString("ConfigStepPanel.maxEndoFinsLabel.text")); // NOI18N

        fishDisplayTypeLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.fishDisplayTypeLabel.mnemonic").charAt(0));
        fishDisplayTypeLabel.setLabelFor(fishDisplayTypeComboBox);
        fishDisplayTypeLabel.setText(bundle.getString("ConfigStepPanel.fishDisplayTypeLabel.text")); // NOI18N

        checkTemplatesCheckBox.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.checkTemplatesCheckBox.mnemonic").charAt(0));
        checkTemplatesCheckBox.setText(bundle.getString("ConfigStepPanel.checkTemplatesCheckBox.text")); // NOI18N
        checkTemplatesCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        checkTemplatesCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0));

        onlyOneFishCheckBox.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.onlyOneFishCheckBox.mnemonic").charAt(0));
        onlyOneFishCheckBox.setText(bundle.getString("ConfigStepPanel.onlyOneFishCheckBox.text")); // NOI18N

        fishDisplayTypeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        javax.swing.GroupLayout fishPanelLayout = new javax.swing.GroupLayout(fishPanel);
        fishPanel.setLayout(fishPanelLayout);
        fishPanelLayout.setHorizontalGroup(
            fishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(fishPanelLayout.createSequentialGroup()
                .addGroup(fishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(fishPanelLayout.createSequentialGroup()
                        .addGroup(fishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(fishPanelLayout.createSequentialGroup()
                                .addGap(10, 10, 10)
                                .addGroup(fishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(maxEndoFinsLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 125, Short.MAX_VALUE)
                                    .addGroup(fishPanelLayout.createSequentialGroup()
                                        .addComponent(maxFinsLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE)
                                        .addGap(27, 27, 27)))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))
                            .addGroup(fishPanelLayout.createSequentialGroup()
                                .addContainerGap()
                                .addComponent(fishDisplayTypeLabel)
                                .addGap(72, 72, 72)))
                        .addGroup(fishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(maxFinsComboBox, 0, 59, Short.MAX_VALUE)
                            .addComponent(maxEndoFinsComboBox, 0, 59, Short.MAX_VALUE)
                            .addComponent(fishDisplayTypeComboBox, 0, 59, Short.MAX_VALUE)))
                    .addGroup(fishPanelLayout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(fishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(fishPanelLayout.createSequentialGroup()
                                .addGap(4, 4, 4)
                                .addComponent(checkTemplatesCheckBox))
                            .addComponent(onlyOneFishCheckBox))))
                .addContainerGap())
        );
        fishPanelLayout.setVerticalGroup(
            fishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(fishPanelLayout.createSequentialGroup()
                .addGroup(fishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(maxFinsLabel)
                    .addComponent(maxFinsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(fishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(maxEndoFinsLabel)
                    .addComponent(maxEndoFinsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(fishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(fishDisplayTypeLabel)
                    .addComponent(fishDisplayTypeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(14, 14, 14)
                .addComponent(checkTemplatesCheckBox)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(onlyOneFishCheckBox)
                .addContainerGap())
        );

        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ConfigStepPanel.jPanel3.border.title"))); // NOI18N

        restrictChainSizeLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.restrictChainSizeLabel.mnemonic").charAt(0));
        restrictChainSizeLabel.setText(bundle.getString("ConfigStepPanel.restrictChainSizeLabel.text")); // NOI18N

        restrictChainSizeCheckBox.setMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("ConfigStepPanel.restrictChainSizeCheckBox.mnemonic").charAt(0));
        restrictChainSizeCheckBox.setText(bundle.getString("ConfigStepPanel.restrictChainSizeCheckBox.text")); // NOI18N
        restrictChainSizeCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        restrictChainSizeCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0));

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(restrictChainSizeCheckBox)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(restrictChainSizeLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 114, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(restrictChainSizeComboBox, 0, 70, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(restrictChainSizeLabel)
                    .addComponent(restrictChainSizeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(restrictChainSizeCheckBox)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        krakenFishPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("krakenFishPanel.border.Text"))); // NOI18N

        krakenFishMaxEndoFinsComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        krakenFishMaxEndoFinsLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("krakenFishMaxEndoFinsLabel.mnemonic").charAt(0));
        krakenFishMaxEndoFinsLabel.setLabelFor(krakenFishMaxEndoFinsLabel);
        krakenFishMaxEndoFinsLabel.setText(bundle.getString("ConfigStepPanel.krakenFishMaxEndoFinsLabel.text")); // NOI18N

        krakenFishMaxFinsLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("krakenFishMaxFinsLabel.mnemonic").charAt(0));
        krakenFishMaxFinsLabel.setLabelFor(krakenFishMaxFinsComboBox);
        krakenFishMaxFinsLabel.setText(bundle.getString("ConfigStepPanel.krakenFishMaxFinsLabel.text")); // NOI18N

        krakenFishMaxFinsComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        krakenFishTypeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        krakenFishTypeLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("krakenFishTypeLabel.mnemonic").charAt(0));
        krakenFishTypeLabel.setLabelFor(krakenFishTypeComboBox);
        krakenFishTypeLabel.setText(bundle.getString("ConfigStepPanel.krakenFishTypeLabel.text")); // NOI18N

        krakenFishMaxSizeLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("intl/ConfigStepPanel").getString("krakenFishMaxSizeLabel.mnemonic").charAt(0));
        krakenFishMaxSizeLabel.setLabelFor(krakenFishMaxSizeComboBox);
        krakenFishMaxSizeLabel.setText(bundle.getString("ConfigStepPanel.krakenFishMaxSizeLabel.text")); // NOI18N

        krakenFishMaxSizeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        javax.swing.GroupLayout krakenFishPanelLayout = new javax.swing.GroupLayout(krakenFishPanel);
        krakenFishPanel.setLayout(krakenFishPanelLayout);
        krakenFishPanelLayout.setHorizontalGroup(
            krakenFishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(krakenFishPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(krakenFishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(krakenFishPanelLayout.createSequentialGroup()
                        .addGroup(krakenFishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(krakenFishPanelLayout.createSequentialGroup()
                                .addComponent(krakenFishMaxFinsLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 99, Short.MAX_VALUE)
                                .addGap(7, 7, 7))
                            .addComponent(krakenFishMaxEndoFinsLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE)
                            .addComponent(krakenFishTypeLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
                    .addGroup(krakenFishPanelLayout.createSequentialGroup()
                        .addComponent(krakenFishMaxSizeLabel)
                        .addGap(36, 36, 36)))
                .addGroup(krakenFishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(krakenFishMaxSizeComboBox, 0, 84, Short.MAX_VALUE)
                    .addComponent(krakenFishMaxEndoFinsComboBox, 0, 84, Short.MAX_VALUE)
                    .addComponent(krakenFishMaxFinsComboBox, 0, 84, Short.MAX_VALUE)
                    .addComponent(krakenFishTypeComboBox, 0, 84, Short.MAX_VALUE))
                .addContainerGap())
        );
        krakenFishPanelLayout.setVerticalGroup(
            krakenFishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(krakenFishPanelLayout.createSequentialGroup()
                .addGroup(krakenFishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(krakenFishTypeLabel)
                    .addComponent(krakenFishTypeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(krakenFishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(krakenFishMaxFinsLabel)
                    .addComponent(krakenFishMaxFinsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(krakenFishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(krakenFishMaxEndoFinsLabel)
                    .addComponent(krakenFishMaxEndoFinsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(krakenFishPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(krakenFishMaxSizeLabel)
                    .addComponent(krakenFishMaxSizeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(fishPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(krakenFishPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(fishPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(1, 1, 1)
                .addComponent(krakenFishPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(57, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
    }// </editor-fold>//GEN-END:initComponents

    private void resetButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetButtonActionPerformed
        initAll(true);
    }//GEN-LAST:event_resetButtonActionPerformed
    
    public void okPressed() {
        // Alle Werte übernehmen
        Options.getInstance().setMaxFins(Integer.parseInt((String)maxFinsComboBox.getSelectedItem()));
        Options.getInstance().setMaxEndoFins(Integer.parseInt((String)maxEndoFinsComboBox.getSelectedItem()));
        Options.getInstance().setCheckTemplates(checkTemplatesCheckBox.isSelected());
        Options.getInstance().setOnlyOneFishPerStep(onlyOneFishCheckBox.isSelected());
        Options.getInstance().setFishDisplayMode(fishDisplayTypeComboBox.getSelectedIndex());
        
        Options.getInstance().setRestrictChainLength(Integer.parseInt((String)restrictChainSizeComboBox.getSelectedItem()));
        //Options.getInstance().restrictNiceLoopLength = Integer.parseInt((String)restrictNiceLoopSizeComboBox.getSelectedItem());
        Options.getInstance().setRestrictChainSize(restrictChainSizeCheckBox.isSelected());

        Options.getInstance().setMaxTableEntryLength(Integer.parseInt(maxTableEntryLengthTextField.getText()));
        Options.getInstance().setAnzTableLookAhead(Integer.parseInt(lookAheadTextField.getText()));
        Options.getInstance().setOnlyOneChainPerStep(onlyOneChainCheckBox.isSelected());
        Options.getInstance().setAllowAlsInTablingChains(allowAlsInTablingCheckBox.isSelected());
        
        Options.getInstance().setUseZeroInsteadOfDot(useZeroInsteadOfDotCheckBox.isSelected());
        
        Options.getInstance().setAllowErsWithOnlyTwoCandidates(erWithTwoCandidatesCheckBox.isSelected());
        Options.getInstance().setAllowDualsAndSiamese(allowDualsAndSiameseCheckBox.isSelected());
        Options.getInstance().setAllowUniquenessMissingCandidates(allowMissingCandidatesCheckBox.isSelected());
        
        Options.getInstance().setKrakenMaxFishType(krakenFishTypeComboBox.getSelectedIndex());
        Options.getInstance().setKrakenMaxFishSize(krakenFishMaxSizeComboBox.getSelectedIndex() + 2);
        Options.getInstance().setMaxKrakenFins(krakenFishMaxFinsComboBox.getSelectedIndex());
        Options.getInstance().setMaxKrakenEndoFins(krakenFishMaxEndoFinsComboBox.getSelectedIndex());
        
        Options.getInstance().setAllowAlsOverlap(allowAlsOverlapCheckBox.isSelected());
        Options.getInstance().setOnlyOneAlsPerStep(onlyOneAlsStepCheckBox.isSelected());
    }
    
    private void initAll(boolean setDefault) {
        if (setDefault) {
            maxFinsComboBox.setSelectedIndex(Options.MAX_FINS);
            maxEndoFinsComboBox.setSelectedIndex(Options.MAX_ENDO_FINS);
            checkTemplatesCheckBox.setSelected(Options.CHECK_TEMPLATES);
            onlyOneFishCheckBox.setSelected(Options.ONLY_ONE_FISH_PER_STEP);
            fishDisplayTypeComboBox.setSelectedIndex(Options.FISH_DISPLAY_MODE);
            
            restrictChainSizeComboBox.setSelectedIndex(Options.RESTRICT_CHAIN_LENGTH);
            //restrictNiceLoopSizeComboBox.setSelectedIndex(Options.RESTRICT_NICE_LOOP_LENGTH);
            restrictChainSizeCheckBox.setSelected(Options.RESTRICT_CHAIN_SIZE);
            
            maxTableEntryLengthTextField.setText(Integer.toString(Options.MAX_TABLE_ENTRY_LENGTH));
            lookAheadTextField.setText(Integer.toString(Options.ANZ_TABLE_LOOK_AHEAD));
            onlyOneChainCheckBox.setSelected(Options.ONLY_ONE_CHAIN_PER_STEP);
            allowAlsInTablingCheckBox.setSelected(Options.ALLOW_ALS_IN_TABLING_CHAINS);
            
            useZeroInsteadOfDotCheckBox.setSelected(Options.USE_ZERO_INSTEAD_OF_DOT);
            
            erWithTwoCandidatesCheckBox.setSelected(Options.ALLOW_ERS_WITH_ONLY_TWO_CANDIDATES);
            allowDualsAndSiameseCheckBox.setSelected(Options.ALLOW_DUALS_AND_SIAMESE);
            allowMissingCandidatesCheckBox.setSelected(Options.ALLOW_UNIQUENESS_MISSING_CANDIDATES);
            
            krakenFishTypeComboBox.setSelectedIndex(Options.KRAKEN_MAX_FISH_TYPE);
            krakenFishMaxSizeComboBox.setSelectedIndex(Options.KRAKEN_MAX_FISH_SIZE - 2);
            krakenFishMaxFinsComboBox.setSelectedIndex(Options.MAX_KRAKEN_FINS);
            krakenFishMaxEndoFinsComboBox.setSelectedIndex(Options.MAX_KRAKEN_ENDO_FINS);
            
            allowAlsOverlapCheckBox.setSelected(Options.ALLOW_ALS_OVERLAP);
            onlyOneAlsStepCheckBox.setSelected(Options.ONLY_ONE_ALS_PER_STEP);
        } else {
            maxFinsComboBox.setSelectedIndex(Options.getInstance().getMaxFins());
            maxEndoFinsComboBox.setSelectedIndex(Options.getInstance().getMaxEndoFins());
            checkTemplatesCheckBox.setSelected(Options.getInstance().isCheckTemplates());
            onlyOneFishCheckBox.setSelected(Options.getInstance().isOnlyOneFishPerStep());
            fishDisplayTypeComboBox.setSelectedIndex(Options.getInstance().getFishDisplayMode());
            
            restrictChainSizeComboBox.setSelectedIndex(Options.getInstance().getRestrictChainLength());
            //restrictNiceLoopSizeComboBox.setSelectedIndex(Options.getInstance().restrictNiceLoopLength);
            restrictChainSizeCheckBox.setSelected(Options.getInstance().isRestrictChainSize());
            
            maxTableEntryLengthTextField.setText(Integer.toString(Options.getInstance().getMaxTableEntryLength()));
            lookAheadTextField.setText(Integer.toString(Options.getInstance().getAnzTableLookAhead()));
            onlyOneChainCheckBox.setSelected(Options.getInstance().isOnlyOneChainPerStep());
            allowAlsInTablingCheckBox.setSelected(Options.getInstance().isAllowAlsInTablingChains());
            
            useZeroInsteadOfDotCheckBox.setSelected(Options.getInstance().isUseZeroInsteadOfDot());
            
            erWithTwoCandidatesCheckBox.setSelected(Options.getInstance().isAllowErsWithOnlyTwoCandidates());
            allowDualsAndSiameseCheckBox.setSelected(Options.getInstance().isAllowDualsAndSiamese());
            allowMissingCandidatesCheckBox.setSelected(Options.getInstance().isAllowUniquenessMissingCandidates());
            
            krakenFishTypeComboBox.setSelectedIndex(Options.getInstance().getKrakenMaxFishType());
            krakenFishMaxSizeComboBox.setSelectedIndex(Options.getInstance().getKrakenMaxFishSize() - 2);
            krakenFishMaxFinsComboBox.setSelectedIndex(Options.getInstance().getMaxKrakenFins());
            krakenFishMaxEndoFinsComboBox.setSelectedIndex(Options.getInstance().getMaxKrakenEndoFins());
            
            allowAlsOverlapCheckBox.setSelected(Options.getInstance().isAllowAlsOverlap());
            onlyOneAlsStepCheckBox.setSelected(Options.getInstance().isOnlyOneAlsPerStep());
        }
    }
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JCheckBox allowAlsInTablingCheckBox;
    private javax.swing.JCheckBox allowAlsOverlapCheckBox;
    private javax.swing.JCheckBox allowDualsAndSiameseCheckBox;
    private javax.swing.JCheckBox allowMissingCandidatesCheckBox;
    private javax.swing.JPanel alsPanel;
    private javax.swing.JCheckBox checkTemplatesCheckBox;
    private javax.swing.JCheckBox erWithTwoCandidatesCheckBox;
    private javax.swing.JComboBox fishDisplayTypeComboBox;
    private javax.swing.JLabel fishDisplayTypeLabel;
    private javax.swing.JPanel fishPanel;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JComboBox krakenFishMaxEndoFinsComboBox;
    private javax.swing.JLabel krakenFishMaxEndoFinsLabel;
    private javax.swing.JComboBox krakenFishMaxFinsComboBox;
    private javax.swing.JLabel krakenFishMaxFinsLabel;
    private javax.swing.JComboBox krakenFishMaxSizeComboBox;
    private javax.swing.JLabel krakenFishMaxSizeLabel;
    private javax.swing.JPanel krakenFishPanel;
    private javax.swing.JComboBox krakenFishTypeComboBox;
    private javax.swing.JLabel krakenFishTypeLabel;
    private javax.swing.JLabel lookAheadLabel;
    private javax.swing.JTextField lookAheadTextField;
    private javax.swing.JComboBox maxEndoFinsComboBox;
    private javax.swing.JLabel maxEndoFinsLabel;
    private javax.swing.JComboBox maxFinsComboBox;
    private javax.swing.JLabel maxFinsLabel;
    private javax.swing.JLabel maxTableEntryLengthLabel;
    private javax.swing.JTextField maxTableEntryLengthTextField;
    private javax.swing.JPanel miscellaneousPanel;
    private javax.swing.JCheckBox onlyOneAlsStepCheckBox;
    private javax.swing.JCheckBox onlyOneChainCheckBox;
    private javax.swing.JCheckBox onlyOneFishCheckBox;
    private javax.swing.JButton resetButton;
    private javax.swing.JCheckBox restrictChainSizeCheckBox;
    private javax.swing.JComboBox restrictChainSizeComboBox;
    private javax.swing.JLabel restrictChainSizeLabel;
    private javax.swing.JPanel tablingPanel;
    private javax.swing.JCheckBox useZeroInsteadOfDotCheckBox;
    // End of variables declaration//GEN-END:variables
    
}
